EXP_NAME = "CelebA"

IMG_DIM = (218, 178)
NUM_FEATURES = 218 * 178
NUM_CLASSES = 2
NUM_TRAIN_DATA = 177457
NUM_TEST_DATA = 22831
NUM_USERS = 9343

NUM_CLIENTS = 10
NUM_LOCAL_UPDATES = 5
CLIENT_BATCH_SIZE = 20
INIT_LR = 0.001

# Conv4
DENSE_TIME = 3.724286518478766
SPARSE_ALL_TIME = 2.66478774077259
SPARSE1_TIME = 1.598415535595268
COEFFICIENTS_SINGLE = [0.0003404870760969184, 6.0777404652307096e-05, 1.7590354819798735e-05, 3.7744218545217262e-06,
                       0.]

SPARSE_TIME = SPARSE1_TIME - sum(COEFFICIENTS_SINGLE)

COMP_COEFFICIENTS = [c * NUM_LOCAL_UPDATES for c in COEFFICIENTS_SINGLE]
# 1MBps = 4e-6 * 2
COMM_COEFFICIENT = 5.561621025626998e-06
TIME_CONSTANT = SPARSE_TIME * NUM_LOCAL_UPDATES

MAX_ROUND = 3001

# Adaptive pruning config
ADJ_INTERVAL = 50
EVAL_DISP_INTERVAL = 10

IP_MAX_ROUNDS = 1000
IP_ADJ_INTERVAL = ADJ_INTERVAL
IP_DATA_BATCH = 10
IP_THR = 0.1

MAX_INC_DIFF = None
MAX_DEC_DIFF = 0.3

ADJ_THR_FACTOR = 1.5
ADJ_THR_ACC = ADJ_THR_FACTOR / NUM_CLASSES
ADJ_HALF_LIFE = 10000

# Iterative pruning config
NUM_ITERATIVE_PRUNING = 20

# Online algorithm config
MAX_NUM_UPLOAD = 5
